/** 
* @param {array}
* @param {number}
* @returns {array}
**/
function flat(array, depth = 1, flatArray = []) {
  if (!Array.isArray(array) || typeof depth !== 'number') return
  const len = array.length
  let i = -1
  
  while(++i < len) {
    if (Array.isArray(array[i]) && depth > 0) {
      flat(array[i], depth - 1, flatArray)
    } else {
      flatArray.push(array[i])
    }
  }
  return flatArray
}

export default flat